﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace AlgorithmTest
{
    // T_[四个数字排序]_[算法名]
    public class T_0181_MaxProduct : IAlgorithm
    {
        // 1464. 数组中两元素的最大乘积

        // 给你一个整数数组 nums，请你选择数组的两个不同下标 i 和 j，使 (nums[i]-1)*(nums[j]-1) 取得最大值。

        // 请你计算并返回该式的最大值。

        // 提示：
        //  2 <= nums.length <= 500
        //  1 <= nums[i] <= 10^3

        public void Test()
        {
            // 算法参数定义
            var nums = new int[] { 2, 1, 7, 4, 5, 6 };
            // 算法执行与打印
            Console.WriteLine(MaxProduct(nums));
        }

        // 算法
        public int MaxProduct(int[] nums)
        {
            int a = nums[0], b = nums[1];
            for (int i = 2; i < nums.Length; i++)
            {
                if (nums[i] > a)
                {
                    if (a > b)
                        b = a;
                    a = nums[i];
                }
                else if (nums[i] > b)
                    b = nums[i];
            }
            return (a - 1) * (b - 1);
        }
    }
}
